package org.onion.pattern.notify.dingtalk;//package com.xx.xx.businessframework.notify.dingding;
//
//public class Test2 {
//
//    public static void main(String[] args) {
//        Timer timer = new Timer();
//        int iMinute = 15;// 分钟数
//        TimerTask task = new TimerTask() {
//            @Override
//            public void run() {
//                System.out.println("任务执行时间: " + System.currentTimeMillis());
//                // 在这里编写您想要执行的任务代码
//                MainFunction();
//            }
//        };
//
//        // 设置任务计划，每隔iMinute分钟执行一次任务，period：毫秒
//        timer.schedule(task, 0, iMinute * 60 * 1000);
//    }
//
//    /**
//     * 主要的执行方法
//     */
//    private static void MainFunction() {
//
//        StringBuffer stringBuffer = new StringBuffer();
//
//        try {
//
//            stringBuffer.append("测试1").append("\n").append("[对勾]");// 添加钉钉文本
//            sendDingDing(stringBuffer);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//
//    }
//
//    /**
//     * 发送钉钉消息
//     *
//     * @param stringBuffer 钉钉机器人消息内容
//     */
//    private static void sendDingDing(StringBuffer stringBuffer) {
//
//        try {
//            // 钉钉机器人地址（配置机器人的webhook）
//            String baseUrl = "https://oapi.dingtalk.com/robot/send?access_token=";
//
//            String token = "4ef75049332958a8f76xxxxxxxxxxxxxxxxxxxx8ef183a03220d81dcc31250c01";
//            String secret = "SEC2ae175d82a49e30xxxxxxxxxxxxxxxb537e06da7bb5fb9a744bc5df19766ce";
//
//            long timestamp = System.currentTimeMillis();
//            String stringToSign = timestamp + "\n" + secret;
//
//            Mac mac = Mac.getInstance("HmacSHA256");// 消息认证码（Message Authentication Code，MAC）的生成和验证
//            mac.init(new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), "HmacSHA256"));
//
//            byte[] signData = mac.doFinal(stringToSign.getBytes(StandardCharsets.UTF_8));
//
//            String dingUrl = baseUrl + token + "&timestamp=" + timestamp + "&sign="
//                    + URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");
//
//            // 是否通知所有人
//            boolean isAtAll = true;// true：@所有人
//            // 通知具体人的手机号码列表
//            List<String> mobileList = Lists.newArrayList();
////            mobileList.add("+86-156xxxxx518");// @指定的人员
//
//            String content = stringBuffer.toString();
//
//            // 组装请求内容
//            String reqStr = packageBuildReqData(content, isAtAll, mobileList);
//
//            // 推送消息（http请求）
//            String result = HttpUtil.doPosthttp(dingUrl, reqStr);
//
//            System.out.println("result == " + result);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//    }
//
//    /**
//     * 组装请求报文
//     *
//     * @param content    消息内容
//     * @param isAtAll    是否通知所有人
//     * @param mobileList 通知人的手机号码列表
//     * @return 组装后的请求报文
//     */
//    private static String packageBuildReqData(String content, boolean isAtAll, List<String> mobileList) {
//        // 消息内容
//        Map<String, String> contentMap = Maps.newHashMap();
//        contentMap.put("content", content);
//        // 通知人
//        Map<String, Object> atMap = Maps.newHashMap();
//        // 1. 是否通知所有人
//        atMap.put("isAtAll", isAtAll);
//        // 2. 通知具体人的手机号码列表
//        atMap.put("atMobiles", mobileList);
//
//        Map<String, Object> reqMap = Maps.newHashMap();
//        reqMap.put("msgtype", "text");
//        reqMap.put("text", contentMap);
//        reqMap.put("at", atMap);
//
//        return JSON.toJSONString(reqMap);
//    }
//
//
//}
